using System;
using System.ComponentModel.DataAnnotations;

namespace ERP.RepositoryManage.Dtos
{
    /// <summary>
    /// 创建装箱DTO
    /// </summary>
    public class CreatePackingDto
    {
        /// <summary>
        /// 装箱单编号
        /// </summary>
        [Required(ErrorMessage = "装箱单编号不能为空")]
        [StringLength(50, ErrorMessage = "装箱单编号长度不能超过50个字符")]
        public string PackingCode { get; set; } = string.Empty;

        /// <summary>
        /// 装箱日期
        /// </summary>
        [Required(ErrorMessage = "装箱日期不能为空")]
        public DateTime? PackingDate { get; set; }

        /// <summary>
        /// 销售订单编号
        /// </summary>
        [StringLength(50, ErrorMessage = "销售订单编号长度不能超过50个字符")]
        public string? SaleOrderCode { get; set; }

        /// <summary>
        /// 发票编号
        /// </summary>
        [StringLength(50, ErrorMessage = "发票编号长度不能超过50个字符")]
        public string? InvoiceCode { get; set; }

        /// <summary>
        /// 客户编码
        /// </summary>
        [StringLength(50, ErrorMessage = "客户编码长度不能超过50个字符")]
        public string? CustomerCode { get; set; }

        /// <summary>
        /// 客户名称
        /// </summary>
        [StringLength(100, ErrorMessage = "客户名称长度不能超过100个字符")]
        public string? CustomerName { get; set; }

        /// <summary>
        /// 产品编码
        /// </summary>
        [StringLength(50, ErrorMessage = "产品编码长度不能超过50个字符")]
        public string? ProductCode { get; set; }

        /// <summary>
        /// 箱长
        /// </summary>
        [StringLength(20, ErrorMessage = "箱长长度不能超过20个字符")]
        public string? PackingLength { get; set; }

        /// <summary>
        /// 箱宽
        /// </summary>
        [StringLength(20, ErrorMessage = "箱宽长度不能超过20个字符")]
        public string? PackingWidth { get; set; }

        /// <summary>
        /// 箱高
        /// </summary>
        [StringLength(20, ErrorMessage = "箱高长度不能超过20个字符")]
        public string? PackingHeight { get; set; }

        /// <summary>
        /// 净重
        /// </summary>
        [StringLength(20, ErrorMessage = "净重长度不能超过20个字符")]
        public string? NetWeight { get; set; }

        /// <summary>
        /// 毛重
        /// </summary>
        [StringLength(20, ErrorMessage = "毛重长度不能超过20个字符")]
        public string? GrossWeight { get; set; }

        /// <summary>
        /// 单位重量
        /// </summary>
        [StringLength(20, ErrorMessage = "单位重量长度不能超过20个字符")]
        public string? UnitWeight { get; set; }

        /// <summary>
        /// 检查员
        /// </summary>
        [StringLength(50, ErrorMessage = "检查员长度不能超过50个字符")]
        public string? Inspector { get; set; }

        /// <summary>
        /// 备注
        /// </summary>
        [StringLength(500, ErrorMessage = "备注长度不能超过500个字符")]
        public string? Remark { get; set; }
    }
} 